package com.ym.medical.domain.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ym.base.enums.FlagEnum;
import com.ym.medical.domain.entity.DoctorLabelEntity;
import com.ym.medical.domain.entity.LabelsEntity;
import com.ym.medical.enums.CounsellingRoomCourTypeEnum;
import com.ym.medical.enums.DoctorDetailsDoctTypeEnum;
import com.ym.medical.enums.DoctorJobTitle;
import com.ym.medical.enums.UserCertStateEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import tk.mybatis.mapper.annotation.LogicDelete;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 医生详情对象 doctor_details
 *
 * @author ym
 * @date 2020-08-19
 */
@ApiModel("医生详情-列表")
@Data
public class DoctorDetailListVo implements Serializable {

	private static final long serialVersionUID = 1L;

	@ApiModelProperty("主键")
	private Long id;

	@ApiModelProperty("医生ID")
	private Long doctId;

	@ApiModelProperty("全/专科")
	@JsonSerialize(converter = CounsellingRoomCourTypeEnum.Covert.class)
	private String doctCategory;

	@ApiModelProperty("医生编码")
	private String doctCode;

	@ApiModelProperty("职称")
	@JsonSerialize(converter = DoctorJobTitle.Covert.class)
	private String jobTitle;

	@ApiModelProperty("资质认证状态")
	@JsonSerialize(converter = UserCertStateEnum.Covert.class)
	private String qualificationStatus;

	@ApiModelProperty("资质认证时间")
	private Date qualificationTime;

	@ApiModelProperty("医院编码")
	private String hospitalCode;

	@ApiModelProperty("标准科室编码")
	private String deptCodeStand;

	@ApiModelProperty("科室编码")
	private String deptCode;

	@ApiModelProperty("医学教育背景")
	private String eduBack;

	@ApiModelProperty("学术研究成果/获奖")
	private String achiAward;

	@ApiModelProperty("医生寄语")
	private String doctMessage;

	@ApiModelProperty("创建人")
	private Long creator;

	@ApiModelProperty("创建时间")
	private Date createTime;

	@ApiModelProperty("修改人")
	private Long modifier;

	@ApiModelProperty("修改时间")
	private Date modifyTime;

	@ApiModelProperty("删除标志")
	@JsonSerialize(converter = FlagEnum.Covert.class)
	@LogicDelete
	private String deleted;

	@ApiModelProperty("留言内容")
	private String spMessage;

	@ApiModelProperty("自动留言(00否01是)")
	@JsonSerialize(converter = FlagEnum.Covert.class)
	private String isAutoReply;

	@ApiModelProperty("医生类别 A/B/C/D/E")
	@JsonSerialize(converter = DoctorDetailsDoctTypeEnum.Covert.class)
	private String doctType;

	@ApiModelProperty("从业时间")
	private Date workTime;

	@ApiModelProperty("门诊时间")
	private String theTime;

	@ApiModelProperty("擅长")
	private String theGoods;

	@ApiModelProperty("排序")
	private Integer sortNum;

	@ApiModelProperty("个人介绍")
	private String theDesc;

	/**
	 * 医院名
	 */
	@ApiModelProperty("医院名")
	private String hosName;
	/**
	 * 科室名
	 */
	@ApiModelProperty("科室名")
	private String deptName;

	@ApiModelProperty("医院code")
	private String hosCode;

	/**
	 * 标准科室名
	 */
	@ApiModelProperty("标准科室名")
	private String sdeptName;

	@ApiModelProperty("标准科室code")
	private String sdeptCode;

	/**
	 * 省
	 */
	@ApiModelProperty("省")
	private String prov;
	/**
	 * 市
	 */
	@ApiModelProperty("市")
	private String city;
	/**
	 * 县
	 */
	@ApiModelProperty("县")
	private String area;
	/**
	 * 医院等级
	 */
	@ApiModelProperty("医院等级")
	private String hosLevel;
	/**
	 * 职称
	 */
	@ApiModelProperty("职称")
	private String titleName;
	/**
	 * 标准科室名
	 */
	@ApiModelProperty("标准科室名")
	private String standartdDeptName;

	@ApiModelProperty("科室类别")
	private String deptType;

	private String deptTypeName;

	private Date creatTime;


	/**
	 * 医生姓名
	 */
	@ApiModelProperty("医生姓名")
	private String realName;
	/**
	 * 性别
	 */
	@ApiModelProperty("性别")
	private String sex;
	/**
	 * 手机号
	 */
	@ApiModelProperty("手机号")
	private String phoneNo;
	/**
	 * 证件类型  身份证	1 港澳台通行证	10部队干部离休证
	 */
	@ApiModelProperty("证件类型  身份证1 港澳台通行证 10部队干部离休证")
	private String cardType;
	/**
	 * 证件号码
	 */
	@ApiModelProperty("证件号码")
	private String cardNo;

	/**
	 * 关键字
	 */
	@ApiModelProperty("关键字")
	private String keywords;

	@ApiModelProperty("邮箱")
	private String email;

	@ApiModelProperty("头像id")
	private String headUrl;

	/**
	 * 医生标签
	 */
	@ApiModelProperty("医生标签")
	private List<DoctorLabelEntity> doctorLabels;

	@ApiModelProperty("医生擅长")
	private List<LabelsEntity> goodLabels;

	private List<LabelsVo> allLabels;

	@ApiModelProperty("开户行")
	private String bankName;

	@ApiModelProperty("卡号")
	private String bcNumber;

	@ApiModelProperty("开户行地址")
	private String openingBank;

	@ApiModelProperty("性别值")
	private String sexName;

	@ApiModelProperty("证件类型")
	private String cardTypeName;

	@ApiModelProperty("用户状态")
	private String userStateName;

	@ApiModelProperty("用户类型")
	private String userTypeName;

	@ApiModelProperty("职称类型")
	private String titleTypeName;


}
